perror() এবং strerror() এর মাধ্যমে এরর মেসেজ জেনারেশন

Computer Programming - সি স্ট্যান্ডার্ড লাইব্রেরি রেফারেন্স (C Standard Library Reference) Error Handling Functions (এরর হ্যান্ডলিং ফাংশনস) |
205
205

perror() এবং strerror() এর মাধ্যমে এরর মেসেজ জেনারেশন

সি প্রোগ্রামিং ভাষায়, perror() এবং strerror() ফাংশনগুলো ব্যবহার করে এরর মেসেজ জেনারেট করা যায়। এই ফাংশনগুলো সিস্টেমের ত্রুটি বা সমস্যা সংক্রান্ত বিস্তারিত তথ্য প্রদানে সহায়ক, যেমন ফাইল খোলার সময় ত্রুটি বা মেমোরি বরাদ্দে ত্রুটি ইত্যাদি।

এই ফাংশনগুলোর মধ্যে পার্থক্য হল perror() ত্রুটির সাথে যুক্ত একটি বর্ণনা মুদ্রণ করে, যেখানে strerror() নির্দিষ্ট ত্রুটি কোডের জন্য একটি স্ট্রিং রিটার্ন করে।


১. perror() – এরর মেসেজের সাথে বর্ণনা মুদ্রণ

perror() ফাংশনটি একটি স্ট্রিং ইনপুট নেয় এবং যদি পূর্বে কোনো ত্রুটি ঘটে থাকে (যেমন, সিস্টেম কল ত্রুটি), তবে সেই ত্রুটির বর্ণনা সহ একটি এরর মেসেজ মুদ্রণ করে। এটি স্ট্যান্ডার্ড ত্রুটি আউটপুটে (stderr) ত্রুটির বর্ণনা প্রিন্ট করে।

সিঙ্কট্যাক্স:

void perror(const char *str);
  • str – একটি স্ট্রিং, যা ত্রুটির আগে মুদ্রণ করা হয়। সাধারণত এটি একটি সংক্ষিপ্ত বর্ণনা বা ফাংশন নাম হতে পারে।

উদাহরণ:

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *file = fopen("nonexistent_file.txt", "r");

    if (file == NULL) {
        perror("Error opening file");
        return 1;
    }

    fclose(file);
    return 0;
}

এখানে, fopen() ফাংশনটি যদি nonexistent_file.txt ফাইলটি খোলার সময় ত্রুটি ঘটে, তবে perror() ফাংশনটি ত্রুটির একটি বর্ণনা সহ একটি মেসেজ মুদ্রণ করবে:

Error opening file: No such file or directory

২. strerror() – ত্রুটি কোডের বর্ণনা পাওয়া

strerror() ফাংশনটি একটি ত্রুটি কোড নিয়ে সেই ত্রুটির বর্ণনা হিসেবে একটি স্ট্রিং রিটার্ন করে। এটি সাধারণত errno ভেরিয়েবলের মান দিয়ে কাজ করে, যা সিস্টেম কল বা লাইব্রেরি ফাংশন থেকে সঠিক ত্রুটি কোড ধারণ করে।

সিঙ্কট্যাক্স:

char *strerror(int errnum);
  • errnum – ত্রুটি কোড, যা সাধারণত errno থেকে পাওয়া যায়।

উদাহরণ:

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

int main() {
    FILE *file = fopen("nonexistent_file.txt", "r");

    if (file == NULL) {
        printf("Error opening file: %s\n", strerror(errno));
        return 1;
    }

    fclose(file);
    return 0;
}

এখানে strerror(errno) ফাংশনটি errno ভেরিয়েবল থেকে ত্রুটি কোড নিয়ে সেই ত্রুটির বর্ণনা হিসেবে একটি স্ট্রিং রিটার্ন করে। যদি fopen() ফাংশনটি কোনো ত্রুটি সৃষ্টি করে, তবে আউটপুট হবে:

Error opening file: No such file or directory

perror() বনাম strerror()

বৈশিষ্ট্যperror()strerror()
কাজত্রুটির বর্ণনা সহ একটি স্ট্রিং আউটপুট করেত্রুটি কোডের জন্য একটি বর্ণনা হিসেবে স্ট্রিং রিটার্ন করে
ইনপুটএকটি স্ট্রিং যা ত্রুটির বর্ণনা প্রদান করেত্রুটি কোড (errno)
আউটপুটস্ট্যান্ডার্ড এরর আউটপুটে মেসেজ মুদ্রণ করেএকটি স্ট্রিং রিটার্ন করে যা ত্রুটির বর্ণনা প্রদান করে
ব্যবহারত্রুটি ঘটে গেলে স্ট্যান্ডার্ড এরর আউটপুটে মেসেজ মুদ্রণ করানির্দিষ্ট ত্রুটি কোডের জন্য একটি বর্ণনা রিটার্ন করা

সারসংক্ষেপ

  • perror(): এটি একটি স্ট্রিং গ্রহণ করে এবং স্ট্যান্ডার্ড এরর আউটপুটে ত্রুটির বর্ণনা সহ একটি মেসেজ মুদ্রণ করে। এটি সাধারনত সিস্টেম কলের পর ত্রুটি ঘটলে ব্যবহার করা হয়।
  • strerror(): এটি একটি ত্রুটি কোড (errno) নিয়ে ত্রুটির বর্ণনা হিসেবে একটি স্ট্রিং রিটার্ন করে। এটি সাধারণত ত্রুটি কোডগুলি প্রসেস করার সময় ব্যবহার করা হয়।

এই দুটি ফাংশনই সি প্রোগ্রামিংয়ে ত্রুটি ম্যানেজমেন্টে সহায়ক, বিশেষত যখন আপনি সিস্টেম কলগুলোর মাধ্যমে ত্রুটি পেতে চান এবং সেই ত্রুটির সঠিক বর্ণনা পেতে চান।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion